/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package xmlaufgabe4;

import java.util.ArrayList;

/**
 * Klasse zur Darstellung eines Tontraegers und allen zugehoerigen Informationen.
 * 
 * @author Adrian Cieluch
 */
public class SoundStorage extends DataElement {
    /**
     * Speichert das Label.
     */
    private String label;
    /**
     * Speichert die Interpreten.
     */
    private ArrayList<String> interpreter;
    /**
     * Speichert die Tontraegerart.
     */
    private String type;
    /**
     * Speichert die Tontraegeranzahl.
     */
    private String amount;

    /**
     * Initialisert alle Attribute.
     */
    public SoundStorage() {
        super();
        label = "";
        interpreter = new ArrayList<String>();
        type = "";
        amount = "";
    }
    
    /**
     * Gibt das Label zurueck.
     * 
     * @return das Label
     */
    public String getLabel() {
        return label;
    }

    /**
     * Setzt das Label.
     * 
     * @param label das zu setzende Label
     */
    public void setLabel(String label) {
        this.label = label;
    }

    /**
     * Gibt den Interpreten an Hand des Index zurueck.
     * 
     * @param index der Index
     * @return der Interpret
     */
    public String getInterpreterByIndex(int index) {
        return interpreter.get(index);
    }

    /**
     * Fuegt einen Interpreten hinzu,
     * 
     * @param interpreter der hinzuzufuegende Interpret
     */
    public void addInterpreter(String interpreter) {
        this.interpreter.add(interpreter);
    }
    
    /**
     * Gibt die Anzahl der Interpreten zurueck.
     * 
     * @return Anzahl der Interpreten 
     */
    public int getInterpreterCount() {
        return interpreter.size();
    }

    /**
     * Gibt die Tontraegerart zurueck.
     * 
     * @return die Tontraegerart
     */
    public String getType() {
        return type;
    }

    /**
     * Setzt die Tontraegerart.
     * 
     * @param type die zu setzende Tontraegerart
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * Gibt die Tontraegeranzahl zurueck.
     * 
     * @return die Tontraegeranzahl
     */
    public String getAmount() {
        return amount;
    }

    /**
     * Setzt die Tontraegeranzahl.
     * 
     * @param amount die zu setzende Tontraegeranzahl
     */
    public void setAmount(String amount) {
        this.amount = amount;
    }

    /**
     * Ermittelt die Anzahl der leeren Attribute und gibt diese zurueck.
     * 
     * @return Anzahl der leeren Attribute
     */    
    @Override
    public int getEmptySlotCount() {
        empty = 0;
        
        this.findEmptySlots();
        
        if(label.isEmpty())
            empty++;
        
        if(interpreter.isEmpty())
            empty++;
        
        return empty;
    }
}
